package us.proyecto.canarios.domain;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * Clase que mapea la tabla PREMIO
 *
 * @author Juan Antonio Mena Sánchez
 *
 */
@Entity
@Table(name = "PREMIO")
public class Premio {

	private int idPremio;
	private String descripcion;
	private Set<Puntuacion> puntuaciones;
	private Set<PuntuacionGrupo> puntuacionesGrupo;
	/**
	 * @return the idPremio
	 */
	@Id
    @SequenceGenerator(name = "premioId", sequenceName = "CAN_PRE_SEQ", initialValue = 1, allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "premioId")
    @Column(name = "ID_PREMIO", nullable = false, precision = 8, scale = 0)
	public int getIdPremio() {
		return idPremio;
	}
	/**
	 * @param idPremio the idPremio to set
	 */
	public void setIdPremio(int idPremio) {
		this.idPremio = idPremio;
	}
	/**
	 * @return the descripcion
	 */
	@Column(name = "DESCRIPCION", length = 200)
	public String getDescripcion() {
		return descripcion;
	}
	/**
	 * @param descripcion the descripcion to set
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	/**
	 * @return the puntuaciones
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "premio")
	public Set<Puntuacion> getPuntuaciones() {
		return puntuaciones;
	}
	/**
	 * @param puntuaciones the puntuaciones to set
	 */
	public void setPuntuaciones(Set<Puntuacion> puntuaciones) {
		this.puntuaciones = puntuaciones;
	}
	/**
	 * @return the puntuacionesGrupo
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy ="premio")
	public Set<PuntuacionGrupo> getPuntuacionesGrupo() {
		return puntuacionesGrupo;
	}
	/**
	 * @param puntuacionesGrupo the puntuacionesGrupo to set
	 */
	public void setPuntuacionesGrupo(Set<PuntuacionGrupo> puntuacionesGrupo) {
		this.puntuacionesGrupo = puntuacionesGrupo;
	}




}
